package com.library.admin.modules.menu.service;

import com.library.admin.modules.menu.entity.Menu;
import com.library.admin.modules.menu.vo.MenuVO;
import com.library.admin.modules.menu.bo.MenuPage;
import com.library.admin.modules.menu.bo.MenuInsert;
import com.library.admin.modules.menu.bo.MenuUpdate;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.Collection;
import java.util.List;

/**
 * @Author xyh
 * @Desc 后台管理菜单表(Menu)表服务接口
 * @Date 2023-10-02 15:09:35
 */
public interface MenuService extends IService<Menu> {

    /**
     * 分页查询
     */
    IPage<MenuVO> queryByPage(MenuPage page);

    /**
     * 初始化数据
     */
    void init();

    /**
     * 根据ID查详情
     */
    MenuVO queryById(Integer id);

    /**
     * 新增数据
     */
    boolean insert(MenuInsert menuInsert);

    /**
     * 修改数据
     */
    boolean update(MenuUpdate menuUpdate);

    /**
     * 通过主键删除数据
     */
    boolean deleteById(Integer id);

    /**
     * 菜单树
     *
     * @param roleIds
     * @return
     */
    List<MenuVO> getTreeMenu(Collection<Integer> roleIds);

}
